package controle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import presentation.GroupeDialog;

import abstraction.Cours;
import abstraction.Groupe;

/** controleur qui ajoute un groupe
 * 
 * @author PICOSSON
 *
 */
public class ControlJButtonSaveGroupe implements ActionListener {

	private Cours modele;
	private boolean creation;
	private GroupeDialog parent;

	public ControlJButtonSaveGroupe(GroupeDialog parent, Cours modele,
			boolean creation) {
		this.modele = modele;
		this.parent = parent;
		this.creation = creation;
	}

	@Override
	public void actionPerformed(ActionEvent e){
		Groupe g;
		if (creation) {
			g = new Groupe(modele.getModuleCourant(), parent.getNomGroupe(),
					parent.getEncadrant());
		} else {
			g = new Groupe(parent.getId_groupe(),
					modele.getModuleCourant(), parent.getNomGroupe(),
					parent.getEncadrant());
		}
		try {
			if(g.getNom().length() < 1)
				throw new Exception("Il n'y a pas de nom de Groupe");
			
			if(g.getEncadrant().length() < 1)
				throw new Exception("Il n'y a pas d'encadrant");
			
			if(creation && this.modele.findGroupe(g.getId_module(), g.getNom()) != null)
				throw new Exception("Le groupe existe déjà");
			
			modele.saveGroupe(g, creation);
			parent.setVisible(false);
		} catch (Exception e1) {
			JOptionPane.showMessageDialog(parent, "On ne peut pas! "+ e1.getMessage(), "Erreur!",
					JOptionPane.ERROR_MESSAGE);

		}
	}

}
